#pragma once
#include "resmanager.h"

#include "MaterialParameters.h"

namespace RenderSystem
{
	class Renderer;
	class Material;
	class MaterialParameter;

	class MaterialManager :
		public ResManager
	{
	public:
		
		typedef MaterialParams				SharedMaterialParameters;
		typedef MaterialParamsIterator		SharedMaterialParametersIterator;

		MaterialManager( Renderer* pRenderer );
		virtual ~MaterialManager(void);

	protected:

		virtual Resource* _CreateImp( const String& strResId );

	private:

		Renderer*							m_pRenderer;

		//used to set once per frame among all materials
		SharedMaterialParameters			m_sharedMaterialParameters;
	};

}